home *** CD-ROM | disk | FTP | other *** search
- /*
- * Source machine generated by GadToolsBox V2.0b
- * which is (c) Copyright 1991-1993 Jaba Development
- *
- * GUI Designed by : Gaƫl Marziou & Ph. Bastiani
- */
-
-
-
-
- #include <exec/types.h>
- #include <dos/datetime.h>
- #include <intuition/intuition.h>
- #include <intuition/classes.h>
- #include <intuition/classusr.h>
- #include <intuition/imageclass.h>
- #include <intuition/gadgetclass.h>
- #include <intuition/intuitionbase.h>
- #include <libraries/gadtools.h>
- #include <proto/exec.h>
- #include <proto/intuition.h>
- #include <proto/gadtools.h>
- #include <proto/wb.h>
- #include <string.h>
-
-
- #include "yak.h"
- #include "version.h"
- #include "gui.h"
- #include "DigitalClock_window.h"
- #include "DigitalClock.h"
- #include "Hotkey_types.h"
- #include "yak_locale_strings.h"
-
-
- extern struct Catalog *Catalog;
-
- extern LONG (*HandleIDCMP)(VOID);
-
- struct Window *DigitalClockWnd = NULL;
- struct Gadget *DigitalClockGList = NULL;
- struct Gadget *DigitalClockGadgets[DigitalClock_CNT];
- UWORD DigitalClockWidth = 500;
- UWORD DigitalClockHeight = 148;
- UBYTE *DigitalClockWdt = NULL;
- BOOL DigitalClockWdi = FALSE;
-
- struct AppWindow *DigitalClockAppWin; /* AppWindow pointer */
- IMPORT struct MsgPort *AppMsgPort;
-
- /* Online help system */
- IMPORT void ShowYakHelp(char *, char *);
- IMPORT char *PrefsHelp;
-
- UBYTE *DateFormatLabels[6];
- UBYTE *ScreenSelectionLabels[6];
-
- static VOID
- InitDateFormatLabels(VOID)
- {
- DateFormatLabels[0] = getString(DATE_FORMAT_DOS);
- DateFormatLabels[1] = getString(DATE_FORMAT_INT);
- DateFormatLabels[2] = getString(DATE_FORMAT_USA);
- DateFormatLabels[3] = getString(DATE_FORMAT_CDN);
- DateFormatLabels[4] = getString(DATE_FORMAT_LOCALE);
- DateFormatLabels[5] = NULL;
- }
-
- static VOID
- InitScreenSelectionLabels(VOID)
- {
- ScreenSelectionLabels[0] = getString(WORKBENCH_SCREEN);
- ScreenSelectionLabels[1] = getString(FRONT_SCREEN);
- ScreenSelectionLabels[2] = getString(FRONT_PUBSCREEN);
- ScreenSelectionLabels[3] = getString(DEF_PUBSCREEN);
- ScreenSelectionLabels[4] = getString(BY_SCREEN_TITLE_OPT);
- ScreenSelectionLabels[5] = NULL;
- }
-
-
- UWORD DigitalClockGTypes[DigitalClock_CNT] =
- {
- CHECKBOX_KIND,
- INTEGER_KIND,
- INTEGER_KIND,
- CHECKBOX_KIND,
- CHECKBOX_KIND,
- CHECKBOX_KIND,
- CHECKBOX_KIND,
- CYCLE_KIND,
- STRING_KIND,
- CYCLE_KIND,
- STRING_KIND,
- BUTTON_KIND
- };
-
-
- struct NewGadget DigitalClockNGad[] =
- {
- 7, 3, 26,11,NULL,NULL,GD_DC_State ,PLACETEXT_RIGHT,NULL ,STATE_ACTIVE_STRING,
- 250, 15, 51,14,NULL,NULL,GD_DC_Offset ,PLACETEXT_LEFT ,NULL ,DigitalClockOffset_STRING,
- 250, 30, 51,14,NULL,NULL,GD_DC_Interval ,PLACETEXT_LEFT ,NULL ,DigitalClockInterval_STRING,
- 7, 45, 26,11,NULL,NULL,GD_DC_ShowDate ,PLACETEXT_RIGHT,NULL ,DigitalClockShowDate_STRING,
- 250, 45, 26,11,NULL,NULL,GD_DC_ShowDay ,PLACETEXT_RIGHT,NULL ,DigitalClockShowDay_STRING,
- 7, 57, 26,11,NULL,NULL,GD_DC_ShortDay ,PLACETEXT_RIGHT,NULL ,DigitalClockShortDay_STRING,
- 250, 57, 26,11,NULL,NULL,GD_DC_ShowSecs ,PLACETEXT_RIGHT,NULL ,DigitalClockShowSecs_STRING,
- 250, 69,243,14,NULL,NULL,GD_DC_DateFormat ,PLACETEXT_LEFT ,NULL ,DigitalClockDateFormat_STRING,
- 250, 84,243,14,NULL,NULL,GD_DC_LocaleDateFormat ,PLACETEXT_LEFT ,NULL ,DigitalClockLocaleDateFormat_STRING,
- 250, 99,243,11,NULL,NULL,GD_DC_ScreenSelection ,PLACETEXT_LEFT,NULL ,DigitalClockScreenSelection_STRING,
- 250,111,243,14,NULL,NULL,GD_DC_ScreenPattern ,PLACETEXT_LEFT ,NULL ,DigitalClockScreenPattern_STRING,
- 200,132,100,13,NULL,NULL,GD_DC_OK ,PLACETEXT_IN ,NULL ,OK_STRING
- };
-
-
- ULONG DigitalClockGTags[] =
- {
- (GTCB_Scaled),TRUE,(TAG_DONE),
- (GTIN_Number),0,(GTIN_MaxChars),4,(STRINGA_Justification),STRINGRIGHT,(TAG_DONE),
- (GTIN_Number),0,(GTIN_MaxChars),4,(STRINGA_Justification),STRINGRIGHT,(TAG_DONE),
- (GTCB_Scaled),TRUE,(TAG_DONE),
- (GTCB_Scaled),TRUE,(TAG_DONE),
- (GTCB_Scaled),TRUE,(TAG_DONE),
- (GTCB_Scaled),TRUE,(TAG_DONE),
- (GTCY_Labels),(ULONG)&DateFormatLabels[ 0 ],(TAG_DONE),
- (GTST_MaxChars), 256, (TAG_DONE),
- (GTCY_Labels),(ULONG)&ScreenSelectionLabels[ 0 ],(TAG_DONE),
- (GTST_MaxChars), PATLEN, (TAG_DONE),
- (TAG_DONE),
- };
-
-
-
- static VOID
- DigitalClockRender(VOID)
- {
- UWORD X,Y, Width, Height;
-
- ComputeFont(DigitalClockWidth,DigitalClockHeight);
-
- Width = ComputeX( DigitalClockWidth );
-
- X = Y = 0;
- Height = ComputeY(129);
- DrawThinBevelBox( Scr, DigitalClockWnd->RPort, X+OffX,Y+OffY,
- Width,
- Height,
- FALSE );
-
- Y += Height;
- Height = ComputeY(DigitalClockHeight) - Y;
- DrawThinBevelBox( Scr, DigitalClockWnd->RPort, X+OffX,Y+OffY,
- Width,
- Height,
- FALSE );
- }
-
-
-
- int
- OpenDigitalClockWindow(VOID)
- {
- struct NewGadget ng;
- struct Gadget *g;
- UWORD lc,tc;
- WORD wleft=WindowLeft, wtop=WindowTop;
- UWORD ww, wh;
-
- ComputeFont(DigitalClockWidth,DigitalClockHeight);
-
- ww = OffX + ComputeX(DigitalClockWidth) + Scr->WBorRight;
- wh = OffY + ComputeY(DigitalClockHeight) + Scr->WBorBottom;
-
- SetUpWindowCoordinates(ww, wh, &wleft, &wtop);
-
- if (! (g = CreateContext(&DigitalClockGList)))
- {
- return(1L);
- }
-
- for(lc = 0,tc = 0; lc < DigitalClock_CNT; lc++)
- {
-
- CopyMem((char *)&DigitalClockNGad[ lc ],(char *)&ng,(long)sizeof(struct NewGadget));
-
- ng.ng_VisualInfo = VisualInfo;
- ng.ng_TextAttr = Font;
- ng.ng_LeftEdge = OffX +ComputeX(ng.ng_LeftEdge);
- ng.ng_TopEdge = OffY +ComputeY(ng.ng_TopEdge);
- ng.ng_Width = ComputeX(ng.ng_Width);
- ng.ng_Height = ComputeY(ng.ng_Height);
-
- DigitalClockGadgets[ lc ] = g = CreateGadgetA((ULONG)DigitalClockGTypes[ lc ],g,&ng,(struct TagItem *) &DigitalClockGTags[ tc ]);
-
- while(DigitalClockGTags[ tc ])
- tc += 2;
-
- tc++;
-
- if (NOT g)
- return(2L);
- }
-
- if (NOT (DigitalClockWnd = OpenWindowTags(NULL,
- WA_Left, wleft,
- WA_Top, wtop,
- WA_Width, ww,
- WA_Height, wh,
- WA_IDCMP, LISTVIEWIDCMP|STRINGIDCMP|CYCLEIDCMP|BUTTONIDCMP|IDCMP_VANILLAKEY|IDCMP_REFRESHWINDOW|IDCMP_RAWKEY,
- WA_Flags, WFLG_DRAGBAR|WFLG_DEPTHGADGET|WFLG_SMART_REFRESH,
- WA_Gadgets, DigitalClockGList,
- WA_Title, DigitalClockWdt,
- WA_ScreenTitle, getString(COPYRIGHT_STRING),
- WA_PubScreen, Scr,
- WA_PubScreenName,PubScreenName,
- TAG_DONE)))
- return(4L);
-
- DigitalClockAppWin = AddAppWindowA(0, 0, DigitalClockWnd, AppMsgPort, NULL);
-
- GT_RefreshWindow(DigitalClockWnd,NULL);
-
- DigitalClockRender();
-
- return(0L);
- }
-
-
-
- VOID
- CloseDigitalClockWindow(VOID)
- {
- CloseOneWindow(DigitalClockWnd,NULL,DigitalClockGList,DigitalClockAppWin);
- DigitalClockWnd = NULL;
- }
-
-
-
- /* initialise all gadgets of DigitalClock window */
-
- static void
- InitDigitalClockGadgets(VOID)
- {
- BOOL UseLocale;
-
- InitWindowGadget(GDX_DC_State, GTCB_Checked, DC_V_Config.State, DIGITALCLOCK_WINDOW);
- InitWindowGadget(GDX_DC_Offset, GTIN_Number, DC_V_Config.Offset, DIGITALCLOCK_WINDOW);
- InitWindowGadget(GDX_DC_Interval, GTIN_Number, DC_V_Config.Interval, DIGITALCLOCK_WINDOW);
- InitWindowGadget(GDX_DC_ShowDate, GTCB_Checked, DC_V_Config.ShowDate, DIGITALCLOCK_WINDOW);
- InitWindowGadget(GDX_DC_ShowDay, GTCB_Checked, DC_V_Config.ShowDay, DIGITALCLOCK_WINDOW);
- InitWindowGadget(GDX_DC_ShortDay, GTCB_Checked, DC_V_Config.ShortDay, DIGITALCLOCK_WINDOW);
- InitWindowGadget(GDX_DC_ShowSecs, GTCB_Checked, DC_V_Config.ShowSecs, DIGITALCLOCK_WINDOW);
- InitWindowGadget(GDX_DC_DateFormat, GTCY_Active, DC_V_Config.DateFormat, DIGITALCLOCK_WINDOW);
- InitWindowGadget(GDX_DC_LocaleDateFormat, GTST_String , (LONG)DC_V_Config.LocaleDateFormat, DIGITALCLOCK_WINDOW);
- InitWindowGadget(GDX_DC_ScreenSelection, GTCY_Active, DC_V_Config.ScreenSelection, DIGITALCLOCK_WINDOW);
- InitWindowGadget(GDX_DC_ScreenPattern, GTST_String , (LONG)DC_V_Config.ScreenPatternData.patstr, DIGITALCLOCK_WINDOW);
-
- if (DC_V_Config.State == DC_C_ACTIVE)
- {
- InitWindowGadget(GDX_DC_Offset, GA_Disabled, FALSE, DIGITALCLOCK_WINDOW);
- InitWindowGadget(GDX_DC_Interval, GA_Disabled, FALSE, DIGITALCLOCK_WINDOW);
- UseLocale = (DC_V_Config.DateFormat == DC_C_LocaleDateFormat);
- InitWindowGadget(GDX_DC_ShowDate, GA_Disabled, UseLocale, DIGITALCLOCK_WINDOW);
- InitWindowGadget(GDX_DC_ShowDay, GA_Disabled, UseLocale, DIGITALCLOCK_WINDOW);
- if (UseLocale)
- {
- InitWindowGadget(GDX_DC_ShortDay, GA_Disabled, UseLocale, DIGITALCLOCK_WINDOW);
- }
- else
- {
- InitWindowGadget(GDX_DC_ShortDay, GA_Disabled, (DC_V_Config.ShowDay == FALSE), DIGITALCLOCK_WINDOW);
- }
-
- InitWindowGadget(GDX_DC_ShowSecs, GA_Disabled, UseLocale, DIGITALCLOCK_WINDOW);
- InitWindowGadget(GDX_DC_DateFormat, GA_Disabled, FALSE, DIGITALCLOCK_WINDOW);
- InitWindowGadget(GDX_DC_LocaleDateFormat, GA_Disabled, !UseLocale, DIGITALCLOCK_WINDOW);
-
- InitWindowGadget(GDX_DC_ScreenSelection, GA_Disabled, FALSE, DIGITALCLOCK_WINDOW);
- InitWindowGadget(GDX_DC_ScreenPattern, GA_Disabled,
- (DC_V_Config.ScreenSelection != DC_C_ScreensByPattern), DIGITALCLOCK_WINDOW);
- }
- else
- {
- InitWindowGadget(GDX_DC_Offset, GA_Disabled, TRUE, DIGITALCLOCK_WINDOW);
- InitWindowGadget(GDX_DC_Interval, GA_Disabled, TRUE, DIGITALCLOCK_WINDOW);
- InitWindowGadget(GDX_DC_ShowDate, GA_Disabled, TRUE, DIGITALCLOCK_WINDOW);
- InitWindowGadget(GDX_DC_ShowDay, GA_Disabled, TRUE, DIGITALCLOCK_WINDOW);
- InitWindowGadget(GDX_DC_ShortDay, GA_Disabled, TRUE, DIGITALCLOCK_WINDOW);
- InitWindowGadget(GDX_DC_ShowSecs, GA_Disabled, TRUE, DIGITALCLOCK_WINDOW);
- InitWindowGadget(GDX_DC_DateFormat, GA_Disabled, TRUE, DIGITALCLOCK_WINDOW);
- InitWindowGadget(GDX_DC_LocaleDateFormat, GA_Disabled, TRUE, DIGITALCLOCK_WINDOW);
- InitWindowGadget(GDX_DC_ScreenSelection, GA_Disabled, TRUE, DIGITALCLOCK_WINDOW);
- InitWindowGadget(GDX_DC_ScreenPattern, GA_Disabled, TRUE, DIGITALCLOCK_WINDOW);
- }
- }
-
-
-
-
-
- /* handle DigitalClock window events */
- LONG
- HandleDigitalClockIDCMP(VOID)
- {
- struct IntuiMessage *msg;
- struct Gadget *gadget;
- ULONG class;
- UWORD code;
- LONG num;
- BOOL close=FALSE;
- LONG ret=RET_OKAY;
-
- while (!close && (msg = GT_GetIMsg(DigitalClockWnd->UserPort)))
- {
- class = msg->Class;
- code = msg->Code;
- gadget = (struct Gadget *)msg->IAddress;
- GT_ReplyIMsg(msg);
-
- switch (class)
- {
- case GADGETUP:
- case GADGETDOWN:
- switch (gadget->GadgetID)
- {
- case GD_DC_OK:
- CloseDigitalClockWindow();
- if (!ShowWindowID(ROOT_WINDOW))
- ret= RET_QUIT;
- close=TRUE;
- break;
-
- case GD_DC_State:
- DC_V_Config.State ^= TRUE;
- InitDigitalClockGadgets();
- break;
-
- case GD_DC_Offset:
- num = GetNumber(gadget);
- if (num >= 0)
- DC_V_Config.Offset = num;
- else
- DisplayBeep(DigitalClockWnd->WScreen);
- InitWindowGadget(GDX_DC_Offset, GTIN_Number, DC_V_Config.Offset, DIGITALCLOCK_WINDOW);
- break;
-
- case GD_DC_Interval:
- num = GetNumber(gadget);
- if (num > 0)
- DC_V_Config.Interval = num;
- else
- DisplayBeep(DigitalClockWnd->WScreen);
- InitWindowGadget(GDX_DC_Interval, GTIN_Number, DC_V_Config.Interval, DIGITALCLOCK_WINDOW);
- break;
-
- case GD_DC_ShowDate:
- DC_V_Config.ShowDate ^= TRUE;
- break;
-
- case GD_DC_ShowDay:
- DC_V_Config.ShowDay ^= TRUE;
- InitDigitalClockGadgets();
- break;
-
- case GD_DC_ShortDay:
- DC_V_Config.ShortDay ^= TRUE;
- break;
-
- case GD_DC_ShowSecs:
- DC_V_Config.ShowSecs ^= TRUE;
- break;
-
- case GD_DC_DateFormat:
- DC_V_Config.DateFormat = code;
- InitDigitalClockGadgets();
- break;
-
- case GD_DC_LocaleDateFormat:
- if (DC_V_Config.LocaleDateFormat)
- {
- FreeVec(DC_V_Config.LocaleDateFormat);
- }
- DC_V_Config.LocaleDateFormat = DupStr(GetString(gadget));
- break;
-
- case GD_DC_ScreenSelection:
- DC_V_Config.ScreenSelection = code;
- InitDigitalClockGadgets();
- break;
-
- case GD_DC_ScreenPattern:
- NewPattern(GDX_DC_ScreenPattern, &DC_V_Config.ScreenPatternData, gadget, DIGITALCLOCK_WINDOW);
- break;
-
- } /* switch (gadget->GadgetID) */
- break;
-
- case IDCMP_RAWKEY:
- /* Help key pressed */
- if (code == 95)
- {
- /* Display the node */
- ShowYakHelp(PrefsHelp, "Digital Clock");
- }
- break;
-
- case REFRESHWINDOW:
- GT_BeginRefresh(DigitalClockWnd);
- GT_EndRefresh(DigitalClockWnd, TRUE);
- break;
-
- } /* switch (class) */
-
- } /* while more messages */
-
- return ret;
- }
-
-
-
- /* show our DigitalClock window */
- BOOL
- ShowDigitalClockWindow(VOID)
- {
- if (!DigitalClockWdi)
- {
- DigitalClockWdi = TRUE;
-
- DigitalClockWdt = getString(DigitalClock);
- LocalizeNGadLabels (DigitalClock_CNT, DigitalClockNGad);
- InitDateFormatLabels ();
- InitScreenSelectionLabels ();
- }
-
- if (!OpenDigitalClockWindow()) /* like the name says... */
- {
- InitDigitalClockGadgets();
- wndsigflag = 1 << DigitalClockWnd->UserPort->mp_SigBit;
- curwin = DigitalClockWnd;
- curwinID = DIGITALCLOCK_WINDOW;
- HandleIDCMP = HandleDigitalClockIDCMP;
- return TRUE;
- }
-
- FreeGadgets(DigitalClockGList);
- CloseDownScreen();
- curwin = NULL;
- wndsigflag = 0L;
- return FALSE;
- }
-
-